[Feature Request]: Add yt-dlp intergration - #9588
Conversation
Head branch was pushed to by a user without write access
Head branch was pushed to by a user without write access
Head branch was pushed to by a user without write access
|
Download dropdown looks strange when there is nothing displayed (just buttons on the left My custom build: https://github.com/PikachuEXE/FreeTube/actions/runs/31294106398 Can we add a button to list formats and another to allow custom format download (or maybe another PR for that I guess? |
Head branch was pushed to by a user without write access
Fixed. Now the output directory is auto-populated with the user's default Downloads folder. Still allows user to change.
Could not replicate. At what point is there nothing displayed?
I thought the objective was to keep options in FT to the minimum needed to just be a frontend wrapper for yt-dlp? So FT doesn't need to keep up with changes or maintain a list of options? The defaults just work, but users can go to the yt-dlp README for any and all guidance on custom formats, bitrates, and other options. |
There was a problem hiding this comment.
Now the output directory is auto-populated with the user's default Downloads folder. Still allows user to change.
We cannot use a hardcoded path like that, we always need to prompt the user as in flatpak builds for example the app is only granted access to paths/folders that the user selected in a file picker. You can follow what we do for the screenshot folder (if it is unset or the folder does not exist or freetube doesn't have write access when the user takes their first screenshot we prompt them to pick a new folder).
Can we add a button to list formats and another to allow custom format download (or maybe another PR for that I guess?
I thought the objective was to keep options in FT to the minimum needed to just be a frontend wrapper for yt-dlp? So FT doesn't need to keep up with changes or maintain a list of options? The defaults just work, but users can go to the yt-dlp README for any and all guidance on custom formats, bitrates, and other options.
This pull request already does more that I am personally comfortable merging with the separate audio and video buttons, the timestamp selector, download folder management and ffmpeg management. Part of the reason we got rid of the downloader was that I didn't want to maintain it and consider it out of scope for FreeTube, not just the calls to YouTube but everything around it.
My original suggestion, which you claimed this pull request was based on, was for a single download button on the watch page and just fields for the yt-dlp executable path and args in the settings. FreeTube would then just call the yt-dlp executable with the users args + the video URL and unref the child process so FreeTube is no longer responsible for it. If the user wants to do any customisations they should add their custom args to their yt-dlp config file or in that args field in the FreeTube settings.
|
I agree with absidue, the scope of this PR has been expanded too much. I would be comfortable with the original suggestion
|
|
@PikachuEXE That dropdown shouldn't even exist, so layout issues inside it are irrelevant to getting this pull request into a mergable state. |
Head branch was pushed to by a user without write access
…ll auto populate the executable paths based on `which` and `where` (built in commands to find binaries in $PATH for all platforms). Versions now shown on top row of settings page for External Downloader.
…ns into folder icon buttons. Version check automatic on path change, throttled. Redone layout to make compact.
flex width and separator for custom argument fields.
Timestamp fields now visibly look like inputs Toast is clickable, no forced navigation
Fixed dropdown width. Replicated Snapshot behavior: Using a single Enable gate for the rest of the settings, a mode selector for ask every time for save folder or show output directory text input field.
Head branch was pushed to by a user without write access
0dde419 to
c52eae9
Compare





Pull Request Type
Related issue
#4178 #8966 #9572 #8543
Description
This adds the feature request from #4178 which was closed when it was decided to remove the built in download capability. But the feature request is now needed MORE because the native download feature is gone.
This implementation
followswas initially based on @absidue's last comment on the subject #4178 (comment)Screenshots
Testing
Configure:
Download:
Desktop
Additional context
Should work for MacOS or Linux builds. The executable chooser button should filter on exe only on Windows. And the arguments for yt-dlp should be the same. Although not tested on any thing other than Windows 11.
Update: Tested on Fedora 43 (xfce) too.